#ifndef __COMUN_OPERACION_H
#define __COMUN_OPERACION_H

/*****************************************************************************
*                     Organizaci�n de Datos - 75.06                          *
*                         C�tedra Lic. Servetto                              *
*            Facultad de Ingenier�a - Universidad de Buenos Aires            *
******************************************************************************/ 

#include <string>
#include "Condiciones.h"

using namespace std;

namespace Comun
{

	static const char* NombreArchivoSalidaCapaFisica = "salida_capafisica.txt";
	static const char* NombreArchivoEntradaCapaFisica = "entrada_capafisica.txt";

	enum Operacion
	{
		ExisteClase,
		CrearArchivoRF,
		CrearArchivoRLV,
		GuardarGrupo,
		LeerGrupo,
		CrearGrupo,
		BorrarGrupo,
		PrimerGrupo,
		SiguienteGrupo

	};

	class ParserDeOperacion
	{

		public:

		static Operacion Parsear(string tipo);
		static string Parsear(Operacion tipo);

	};

	enum OperacionConsulta
	{
		ClasePresente,
		InsertarInstancia,
		BorrarInstancia,
		ActualizarInstancia,
		SeleccionarInstancia,
		CrearClase
	};
	
	class ParserDeOperacionConsulta
	{

		public:

		static OperacionConsulta Parsear(string tipo);
		static string Parsear(OperacionConsulta tipo);

	};

	class ParserTipoSimbolo
	{

		public:

		static TipoSimbolo Parsear(string tipo);
		static string Parsear(TipoSimbolo tipo);

	};

}

#endif
